package cn.iocoder.yudao.module.book.controller.app.lock.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "用户 APP - 增强打卡记录 Response VO")
@Data
public class AppCheckInEnhancedRespVO {

    @Schema(description = "打卡id", example = "6738")
    private Integer clockId;

    @Schema(description = "用户信息")
    private UserInfo userInfo;

    @Schema(description = "打卡内容", example = "今天读了很有趣的绘本")
    private String content;

    @Schema(description = "连续打卡天数", example = "30")
    private Integer dayCount;

    @Schema(description = "今日阅读的书籍列表")
    private List<BookInfo> bookList;

    @Schema(description = "打卡时间")
    private LocalDateTime createTime;

    @Schema(description = "用户信息")
    @Data
    public static class UserInfo {
        @Schema(description = "用户ID", example = "123")
        private Long userId;

        @Schema(description = "用户昵称", example = "小明")
        private String nickName;

        @Schema(description = "用户头像", example = "https://example.com/avatar.jpg")
        private String avatar;

        @Schema(description = "是否VIP", example = "true")
        private Boolean isVip;

        @Schema(description = "是否已关注", example = "true")
        private Boolean isFollowing;
    }

    @Schema(description = "书籍信息")
    @Data
    public static class BookInfo {
        @Schema(description = "书籍ID", example = "456")
        private Integer bookId;

        @Schema(description = "书籍名称", example = "小红帽")
        private String title;

        @Schema(description = "书籍封面", example = "https://example.com/cover.jpg")
        private String image;

        @Schema(description = "绘本集ID", example = "789")
        private Integer collectionId;

        @Schema(description = "创作者", example = "安徒生")
        private String creator;
    }
}
